package org.facyt.vacas.entities.vacas;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.facyt.commons.util.StringUtils;

//import com.facyt.dto.utils.StringUtils;

@Entity
@Table(name="componente", schema="vacas")
public class Componente implements Serializable {

	@Id
	@SequenceGenerator(name="componente_seq", sequenceName="vacas.componente_id_seq")
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="componente_seq")
	@Column(name="id")
	private Integer id;
	
	@Column(name="descripcion",columnDefinition="bpchar")
	private String descripcion;
	
	@ManyToOne()
	@JoinColumn(name="fk_unidad")
	private Unidad unidad;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getDescripcion() {
		return descripcion.trim();
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public Unidad getUnidad() {
		return unidad;
	}

	public void setUnidad(Unidad unidad) {
		this.unidad = unidad;
	}
	
	public boolean equals(Componente componente)
	{
		return (this.getId().intValue() == componente.getId().intValue()
				&& this.getDescripcion().equalsIgnoreCase(componente.getDescripcion()));
	}
	

	public String toString()
	{
		if(getId()> 0)
		{
			String id = StringUtils.completarConEspaciosAdelante(new Long(getId()).toString().trim(), 2).trim();
			return (id+" - "+getDescrParaMostrar()).trim();
		}else 
			return getDescripcion();
	}

	private String getDescrParaMostrar() {
		//TODO recordar que por cuestiones de nombre de variables, 
		//se modificacron algunos:
		//los guiones - se reemplazaron por guion bajo _
		//las / la reemplazamos por un cero 0
		//el espacio antes de digest lo reemplazamos por _
		//en este metodo reemplazar por los originales y devolver-
		
		return getDescripcion();
	}
}
